import os
import shutil
import subprocess
当前目录 = os.path.split(__file__)[0]
项目目录 = os.path.split(当前目录)[0]
helloworld_目录 = 项目目录 + '/tests/hello_world.py'
测试可执行目录 = 项目目录 + '/tests/测试可执行.py'
l0n0lcoutput = 项目目录 + '/l0n0lcoutput'
try:
    shutil.rmtree(l0n0lcoutput)
except:
    pass

输入 = b'1\n2\n100\n101\n'
ret = subprocess.run(['uv', 'run', helloworld_目录],
                     capture_output=True, input=b'1\n2\n100\n101\n')
hello_world输出 = ret.stdout.decode()
print(hello_world输出)
代码列表 = []

ret = subprocess.run(['ls', '-al', l0n0lcoutput], capture_output=True)
lsout = ret.stdout.decode()
print(lsout)

with open(helloworld_目录) as fp:
    hello_world代码 = fp.read()

with open(测试可执行目录) as fp:
    测试可执行目录代码 = fp.read()

for 文件名 in sorted(os.listdir(l0n0lcoutput)):
    if 文件名.endswith('.h') or 文件名.endswith('.cpp'):
        with open(f'{l0n0lcoutput}/{文件名}') as fp:
            代码 = fp.read()
        代码列表.append((文件名, 'c++', 代码))

ReadMen文本 = f'''
# 将python函数翻译为c++函数并运行
## 1. 安装
```
pip install l0n0lc
```

## 2. 测试可执行.py
```python
{测试可执行目录代码}
```

## 3. hello_world.py
```python
{hello_world代码}
```

## 4. 运行hello_world.py
```
uv run tests/hello_world.py
# 输入: {输入}
```
```bash
{hello_world输出}
```

## 5. 查看输出文件
```bash
ls -al ./l0n0lcoutput
{lsout}
```
'''


i = 6
for (文件名, 代码类型, 代码) in 代码列表:
    ReadMen文本 += f'## {i}. {文件名}\n'
    ReadMen文本 += f'```{代码类型}\n'
    ReadMen文本 += 代码
    ReadMen文本 += '\n```\n'
    i += 1

with open(f'{项目目录}/README.md', 'w') as fp:
    fp.write(ReadMen文本)
